home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swags_z.zip
/
STRINGS.SWG
/
0038_"IF" Boolean processing.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-09-26
|
3KB
|
90 lines
{*****************************************************************************
* Function ...... CIF()
* Purpose ....... To return a character based on a boolean expression
* Parameters .... Exp Boolean expression to evaluate
* tVar Result if <Exp> is TRUE
* fVar Result if <Exp> is FALSE
* Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
* Notes ......... None
* Author ........ Martin Richardson
* Date .......... May 13, 1992
*****************************************************************************}
FUNCTION CIF( Exp: BOOLEAN; tVar, fVar: CHAR ): CHAR; ASSEMBLER;
ASM
TEST Exp, 1
JZ @@1
MOV AL, tVar
JMP @@2
@@1: MOV AL, fVar
@@2:
END;
{*****************************************************************************
* Function ...... SIF()
* Purpose ....... To return a string based on a boolean expression
* Parameters .... Exp Boolean expression to evaluate
* tVar Result if <Exp> is TRUE
* fVar Result if <Exp> is FALSE
* Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
* Notes ......... None
* Author ........ Martin Richardson
* Date .......... May 13, 1992
*****************************************************************************}
FUNCTION SIF( Exp: BOOLEAN; tVar, fVAR: STRING ): STRING; ASSEMBLER;
ASM
PUSH DS
TEST Exp, 1
JZ @@1
LDS SI, tVar
JMP @@2
@@1: LDS SI, fVar
@@2: LES DI, @Result
XOR CH, CH
MOV CL, BYTE PTR DS:[SI]
MOV BYTE PTR ES:[DI], CL
INC DI
INC SI
CLD
REP MOVSB
POP DS
END;
{*****************************************************************************
* Function ...... IIF()
* Purpose ....... To return an integer based on a boolean expression
* Parameters .... Exp Boolean expression to evaluate
* tVar Result if <Exp> is TRUE
* fVar Result if <Exp> is FALSE
* Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
* Notes ......... None
* Author ........ Martin Richardson
* Date .......... May 13, 1992
*****************************************************************************}
FUNCTION IIF( Exp: BOOLEAN; tVar, fVar: LONGINT ): LONGINT; ASSEMBLER;
ASM
TEST Exp, 1
JZ @@1
MOV AX, WORD PTR tVar[0]
MOV DX, WORD PTR tVar[2]
JMP @@2
@@1: MOV AX, WORD PTR fVar[0]
MOV DX, WORD PTR fVar[2]
@@2:
END;
{*****************************************************************************
* Function ...... RIF()
* Purpose ....... To return a real based on a boolean expression
* Parameters .... Exp Boolean expression to evaluate
* tVar Result if <Exp> is TRUE
* fVar Result if <Exp> is FALSE
* Returns ....... <tVar> if <Exp> is TRUE, <fVar> if <Exp> is FALSE
* Notes ......... None
* Author ........ Martin Richardson
* Date .......... May 13, 1992
*****************************************************************************}
FUNCTION RIF( Exp : BOOLEAN; tVar, fVAR : REAL ) : REAL;
BEGIN
IF Exp THEN RIF := tVAR ELSE RIF := fVar;
END;